package sv.com.action.buque;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import net.sf.json.JSONObject;
import sv.com.action.comun.ComunAction;
import sv.com.modelo.buque.Buque;
import sv.com.modelo.buque.MotorBuque;
import sv.com.modelo.buque.UnidadPotencia;
import sv.com.objetos.auxiliares.Constantes;
import sv.com.objetos.auxiliares.Consulta;
import sv.com.objetos.auxiliares.Listas;
import sv.com.objetos.jqgrid.JQGridJSONModel;
import sv.com.objetos.jqgrid.JQGridRow;
import sv.com.servicio.generico.DaoGenerico;

public class BuqAction extends ComunAction  {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	MotorBuque motorBuque = new MotorBuque();
	String filters;
	



	public BuqAction(DaoGenerico servicioGenerico) {
		this.servicioGenerico = servicioGenerico;
	}



	



	public String getFilters() {
		return filters;
	}



	public void setFilters(String filters) {
		this.filters = filters;
	}



	public Long getIdMotorBuque() {
		return motorBuque.getIdMotorBuque();
	}



	public void setIdMotorBuque(Long idMotorBuque) {
		motorBuque.setIdMotorBuque(idMotorBuque);
	}



	public Long getUnidadPotencia() {
		return motorBuque.getUnidadPotencia().getIdUnidadPotencia();
	}



	public void setUnidadPotencia(Long unidadPotencia) {
		UnidadPotencia up = new UnidadPotencia();
		up.setIdUnidadPotencia(unidadPotencia);
		motorBuque.setUnidadPotencia(up);
	}



	public Long getBuque() {
		return motorBuque.getBuque().getIdRegistroBuque();
	}



	public void setBuque(Long buque) {
		Buque buq = new Buque();
		buq.setIdRegistroBuque(buque);
		motorBuque.setBuque(buq);
	}



	public String getMarcaMotor() {
		return motorBuque.getMarcaMotor();
	}



	public void setMarcaMotor(String marcaMotor) {
		motorBuque.setMarcaMotor(marcaMotor);
	}



	public String getModeloMotor() {
		return motorBuque.getModeloMotor();
	}



	public void setModeloMotor(String modeloMotor) {
		motorBuque.setModeloMotor(modeloMotor);
	}



	public String getNoSerie() {
		return motorBuque.getNoSerie();
	}



	public void setNoSerie(String noSerie) {
		motorBuque.setNoSerie(noSerie);
	}



	public Double getMagnitudPotencia() {
		return motorBuque.getMagnitudPotencia();
	}



	public void setMagnitudPotencia(Double magnitudPotencia) {
		motorBuque.setMagnitudPotencia(magnitudPotencia);
	}



	public void mapaDeMetodos(){
		String metodo=getOper();
		if(metodo==null) metodo = CONS;
		if(metodo.equals("cargarMotorBuque")) cargarMotorBuque();
//		else if(metodo.equals(ELI)) eliminar();
		else if(metodo.equals(AGR)) agregar();
		else if(metodo.equals(MOD)) modificar();
	}


	
	public void modificar(){
		
	}
	
	
	@SuppressWarnings("unchecked")
	public void cargarMotorBuque(){
		try{
			JQGridJSONModel json= new JQGridJSONModel();
			int pagina = getPage();
			int bloque = getRows();
			
			List<JQGridRow> rows = new ArrayList<JQGridRow>();
			
			Integer totalColumnas = new Integer(0);
			List<MotorBuque> lista=null;
			String idBuque = getServletRequest().getParameter("idBuque");
			HashMap<String, Object> parametros = new HashMap<String, Object>();
			ArrayList<String> propiedades=new ArrayList<String>();
			ArrayList<Object> valores = new ArrayList<Object>();
			ArrayList<String> tiposConsulta = new ArrayList<String>();
			propiedades.add("buque.idRegistroBuque");
			valores.add(idBuque);
			tiposConsulta.add(Consulta.IGUAL);
			if(get_search()){
				HashMap<String, Object> filtros=obtenerFiltros();
				propiedades.addAll((ArrayList)filtros.get("propiedades"));
				valores.addAll((ArrayList)filtros.get("valores"));
				tiposConsulta.addAll((ArrayList)filtros.get("tiposConsulta"));
				/*if(Cadena.noVacio(getPrimerNombre())){ propiedades.add("primerNombre"); valores.add(getPrimerNombre()); tiposConsulta.add(Consulta.LIKE); }
				if(Cadena.noVacio(getPrimerApellido())){ propiedades.add("primerApellido"); valores.add(getPrimerApellido()); tiposConsulta.add(Consulta.LIKE); }
				if(Cadena.noVacio(getCorreoElectronico())){ propiedades.add("correoElectronico"); valores.add(getCorreoElectronico()); tiposConsulta.add(Consulta.LIKE); }
				*/
			}

			parametros.put("propiedades", Listas.pasarListaArregloString(propiedades));
			parametros.put("valores", Listas.pasarListaArregloObjeto(valores));
			parametros.put("tiposConsulta", Listas.pasarListaArregloString(tiposConsulta));
			parametros.put("ordenarPor", "idMotorBuque asc");
			
			totalColumnas = servicioGenerico.tamanoTotalListaCargarTodosV2(MotorBuque.class, parametros);
			lista=servicioGenerico.cargarTodosV2(MotorBuque.class, parametros, pagina, bloque);
			
			json.setRecords(totalColumnas);
			JQGridRow row = null; 
			List<String> cells = null; 
			for(MotorBuque objeto:lista){
				row = new JQGridRow(); 
				cells = new ArrayList<String>();
				row.setId(objeto.getIdMotorBuque());
				cells.add(objeto.getIdMotorBuque()+"");
				cells.add(objeto.getBuque().getIdRegistroBuque()+"");
				cells.add(objeto.getUnidadPotencia().getNombreUnidadPotencia());
				cells.add(objeto.getMarcaMotor());
				cells.add(objeto.getModeloMotor());
				cells.add(objeto.getNoSerie()+"");
				cells.add(objeto.getMagnitudPotencia()+"");
				
				row.setCell(cells); 
				rows.add(row);
			}
			json.setPage(String.valueOf(pagina)); 
			json.setTotal(String.valueOf(Constantes.calcularNumeroPaginas(totalColumnas,getRows())));
			json.setRows(rows);
			
			JSONObject o = JSONObject.fromObject(json);
			enviarJsonNavegador(o);
		}catch (Exception e) {
			e.printStackTrace();
			enviarMensajeStatic("error~"+e.getCause().toString(), getServletResponse());
		}
	}
	
	
	public void agregar(){
		try {
			servicioGenerico.agregar(motorBuque);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			enviarMensajeStatic("error~"+e.getCause().toString(), getServletResponse());
		}
	}
	
	
}
